﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Упр)
	///</summary>
	[DataContract]
	public enum ВидыОперацийПриходныйОрдер
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"46533e2b-5365-496c-aee9-8ff33361ddb0\", \"Представление\":\"ОтПоставщика\"}")]
		ОтПоставщика = 0,//от поставщика
		[EnumMember(Value = "{\"Ссылка\":\"20095c8f-19ab-4f10-af52-a44f72223175\", \"Представление\":\"ОтПодотчетника\"}")]
		ОтПодотчетника = 1,//от подотчетника
		[EnumMember(Value = "{\"Ссылка\":\"d7e7974b-efa9-4010-9a0d-01ad9e546751\", \"Представление\":\"ОтПокупателя\"}")]
		ОтПокупателя = 2,//от покупателя
		[EnumMember(Value = "{\"Ссылка\":\"0450f8b2-e791-47ea-98ed-63d393473e8a\", \"Представление\":\"Перемещение\"}")]
		Перемещение = 3,
		[EnumMember(Value = "{\"Ссылка\":\"9c0baa0e-39c3-4e98-a12f-02480d0c4b03\", \"Представление\":\"ИзПереработки\"}")]
		ИзПереработки = 4,//из переработки
		[EnumMember(Value = "{\"Ссылка\":\"1af8546d-cd64-497d-b2fe-05ed4f2462fb\", \"Представление\":\"НеОпределен\"}")]
		НеОпределен = 5,//не определен
	}
	public static partial class ВидыОперацийПриходныйОрдер_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ОтПоставщика = new Guid("f38fe9ae-6133-b0dd-496c-536546533e2b");//от поставщика
		public static readonly Guid ОтПодотчетника = new Guid("4fa452af-2272-7531-4f10-19ab20095c8f");//от подотчетника
		public static readonly Guid ОтПокупателя = new Guid("ad010d9a-549e-5167-4010-efa9d7e7974b");//от покупателя
		public static readonly Guid Перемещение = new Guid("d363ed98-4793-8a3e-47ea-e7910450f8b2");
		public static readonly Guid ИзПереработки = new Guid("48022fa1-0c0d-034b-4e98-39c39c0baa0e");//из переработки
		public static readonly Guid НеОпределен = new Guid("ed05feb2-244f-fb62-497d-cd641af8546d");//не определен
		public static ВидыОперацийПриходныйОрдер Получить(this ВидыОперацийПриходныйОрдер Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыОперацийПриходныйОрдер Получить(this ВидыОперацийПриходныйОрдер Значение, Guid Ссылка)
		{
			if(Ссылка == ОтПоставщика)
			{
				return ВидыОперацийПриходныйОрдер.ОтПоставщика;
			}
			else if(Ссылка == ОтПодотчетника)
			{
				return ВидыОперацийПриходныйОрдер.ОтПодотчетника;
			}
			else if(Ссылка == ОтПокупателя)
			{
				return ВидыОперацийПриходныйОрдер.ОтПокупателя;
			}
			else if(Ссылка == Перемещение)
			{
				return ВидыОперацийПриходныйОрдер.Перемещение;
			}
			else if(Ссылка == ИзПереработки)
			{
				return ВидыОперацийПриходныйОрдер.ИзПереработки;
			}
			else if(Ссылка == НеОпределен)
			{
				return ВидыОперацийПриходныйОрдер.НеОпределен;
			}
			return ВидыОперацийПриходныйОрдер.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыОперацийПриходныйОрдер Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыОперацийПриходныйОрдер Значение)
		{
			switch (Значение)
			{
				case ВидыОперацийПриходныйОрдер.ОтПоставщика: return ОтПоставщика;
				case ВидыОперацийПриходныйОрдер.ОтПодотчетника: return ОтПодотчетника;
				case ВидыОперацийПриходныйОрдер.ОтПокупателя: return ОтПокупателя;
				case ВидыОперацийПриходныйОрдер.Перемещение: return Перемещение;
				case ВидыОперацийПриходныйОрдер.ИзПереработки: return ИзПереработки;
				case ВидыОперацийПриходныйОрдер.НеОпределен: return НеОпределен;
			}
			return Guid.Empty;
		}
	}
}